This invention relates to digital processing apparatus having one or more display terminal devices interconnected by communications lines, and in particular, provides a system for rapidly updating a remote display using communications lines.
Computer systems typically include target display terminals and display buffers for storing data which controls and modifies the images displayed on the display terminals. In computer systems having remote terminals, the need exists to quickly and efficiently update remote displays, and to ascertain user interactivity.
Many computer programs cause images to be displayed on the target display terminal by directly writing to the display buffer memories. Also, computer systems having virtual memory typically monitor the presence of modified flag bits known as modified, or "dirty" update flags, to determine whether data in a region of computer memory needs to be copied to disk before that region of memory is reused for another purpose. Some timesharing computer systems additionally use the fact that a program has not requested input recently to determine that the program is no longer interactive.
In some computer systems there may be many programs active at the same time. These systems include both single-user multi-tasking systems, and multi-user systems, sometimes referred to as "timesharing" systems. In multi-tasking and multi-user systems, resources such as CPU time, disk access, memory, and access to critical data structures are allocated dynamically on a moment-by-moment basis by an element called a scheduler. It is typical for such a scheduling element to use some indication of whether a particular program is currently actively interacting with a user to determine approximate dynamic allocation of system resources. One conventional indicator is whether the program has recently requested input from the user; if it has not, then it can be judged to be no longer interactive.
Update indicators have not, however, previously been applied to the task of updating target displays. Additionally, no prior art system has applied update indicators or other display indicators to display memory write operations to determine interactivity.
Virtual memory systems known in the art associate update flags with virtual memory pages. Such pages are typically composed of 2.sup.n numerically contiguous linear memory addresses, starting on a m2.sup.n address boundary, where m is zero or a positive integer and n is a positive integer, typically in the range 9-12, chosen to optimize the performance characteristics of moving entire pages between main memory and disks. Prior art virtual memory systems having memory pages constrained to numerically contiguous linear memory addresses are not efficiently adapted to display applications requiring display regions of arbitrary contiguity.
Other memory organization schemes, known as cache indexing schemes, often use complex mappings of addresses to locate a cache cell that may contain a copy of the desired memory cell. However, these schemes are usually based on simple logical combinations of address bits, so as to provide high-speed cache indexing, and such systems, like virtual memory systems, do not lend themselves to display applications requiring regions of arbitrary contiguity.
In short, prior art systems incorporating cache indexing schemes, or virtual memory systems with update flags, do not permit dynamic modification of the shape, size or configuration of regions, a capability which is useful in the rapid and efficient updating of remote target displays.
It is accordingly an object of the invention to provide a method and system for rapidly updating a remote display from a memory-mapped display buffer. The term "remote" is used herein to denote "another" display, rather than a "distant" display. The invention can be practiced in connection with displays which are physically proximate to the display buffer.
It is also an object of this invention to provide an improved memory-mapped display system which allows the shape, size and configuration of regions to be changed dynamically, to permit defining accessed memory regions of arbitrary and dynamically changeable contiguity which are suitable for applications such as text and graphics display.
It is another object to provide a virtual memory display system which applies the above-mentioned dynamically changeable memory regions to updating of a remote memory-mapped display.
Another object of the invention is to use memory mapped display indicia on a moment-by-moment basis to aid in determining which of a plurality of programs running on the computer are currently performing interactive functions, in order to provide these programs with preferred scheduling of or access to other computer resources to provide such interactivity, and in order to remove such preference when such a program shows evidence of no longer being interactive.